package cn.iocoder.yudao.module.erp.dal.mysql.contract;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.contract.vo.ContractPageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.contract.ContractDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 合同信息 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface ErpContractMapper extends BaseMapperX<ContractDO> {

    default PageResult<ContractDO> selectPage(ContractPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ContractDO>()
                .likeIfPresent(ContractDO::getContractName, reqVO.getContractName())
                .eqIfPresent(ContractDO::getContractNo, reqVO.getContractNo())
                .eqIfPresent(ContractDO::getContractStatus, reqVO.getContractStatus())
                .betweenIfPresent(ContractDO::getSigningDate, reqVO.getSigningDate())
                .eqIfPresent(ContractDO::getContractResponsiblePersonId, reqVO.getContractResponsiblePersonId())
                .orderByDesc(ContractDO::getId));
    }

    default ContractDO selectByNo(String no) {
        return selectOne(ContractDO::getContractNo, no);
    }
}